package _5_Create._5_2_Builder._5_2_2_complete.Builder;

import _5_Create._5_2_Builder._5_2_2_complete.Product.AutoMessage;

/**
 * 建造者模板
 */
abstract public class Builder {

    protected AutoMessage msg;

    /**
     * 具体建造者有自己的实现
     */
    public abstract void buildSubject();

    /**
     * 模板方法
     *
     * @param from
     */
    public void buildFrom(String from) {
        msg.setFrom(from);
    }

    /**
     * 模板方法
     *
     * @param to
     */
    public void buildTo(String to) {
        msg.setTo(to);
    }

    /**
     * 相当于产品返回方法，此时产品已经建造完成。
     */
    public void sendMessage() {
        msg.send();
    }
}
